package mx.itesm.papamastodon.dienosaurs;
import android.opengl.GLES20;
import android.util.Log;

import org.andengine.audio.sound.Sound;
import org.andengine.audio.sound.SoundFactory;
import org.andengine.engine.camera.Camera;
import org.andengine.entity.Entity;
import org.andengine.entity.particle.BatchedPseudoSpriteParticleSystem;
import org.andengine.entity.particle.emitter.RectangleParticleEmitter;
import org.andengine.entity.particle.initializer.AccelerationParticleInitializer;
import org.andengine.entity.particle.initializer.ExpireParticleInitializer;
import org.andengine.entity.particle.initializer.RotationParticleInitializer;
import org.andengine.entity.particle.initializer.ScaleParticleInitializer;
import org.andengine.entity.particle.initializer.VelocityParticleInitializer;
import org.andengine.entity.particle.modifier.AlphaParticleModifier;
import org.andengine.entity.scene.CameraScene;
import org.andengine.entity.scene.background.SpriteBackground;
import org.andengine.entity.sprite.AnimatedSprite;
import org.andengine.entity.sprite.ButtonSprite;
import org.andengine.entity.sprite.Sprite;
import org.andengine.entity.text.Text;
import org.andengine.entity.text.TextOptions;
import org.andengine.input.touch.TouchEvent;
import org.andengine.opengl.font.Font;
import org.andengine.opengl.font.FontFactory;
import org.andengine.opengl.util.GLState;
import org.andengine.util.adt.align.HorizontalAlign;
import org.andengine.util.adt.dictionary.Dictionary;


import java.io.IOException;
import java.util.ArrayList;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.Context;
import android.content.*;


/**
 * Created by Papa Mastodon on 01/03/2015.
 */
public class EscenaJuego extends EscenaBase {

    private Sprite spriteFondo;
    private AnimatedSprite sprite;
    private AnimatedSprite sprite2;
    private AnimatedSprite sprite3;
    private AnimatedSprite sprite4;
    private Sprite caja;
    private Sprite caja3;
    private Sprite caja2;
    private Sprite tablita;
    private Sprite tablita2;
    private Sprite tablita3;
    private Sprite tablita4;
    private Sprite tablota;
    private Sprite tablota2;
    private Sprite tablamovil;
    private Sprite tablamovil2;
    private Sprite muerte;
    private Sprite muerte2;
    private Sprite muerte3;
    private Sprite muerte4;
    private Sprite muerte5;
    private Sprite muerte6;
    private Sprite pared;
    private Sprite pared2;
    private Sprite pared3;
    private Sprite quemao;
    private Sprite quemao2;
    private Sprite picos;
    private Sprite picosan;
    private Sprite meta;
    private Sprite rampa;
    private ButtonSprite boton;
    private ButtonSprite boton2;
    private ButtonSprite botonArriba;
    private ButtonSprite botonAbajo;
    private ButtonSprite botonPuente;
    private ButtonSprite botonRampa;
    private boolean apretado;
    private boolean apretado2;
    private boolean apretadoArriba=false;
    private boolean apretadoAbajo=false;
    private boolean rampaSet = false;
    private boolean finalisar = false;
    private boolean tablaSet = false;
    private boolean pausado=false;
    private int dinoCounter;
    private Sprite barra;
    private Sound quemaofx;
    private Sound sangre;
    private Sound victoria;
    private Sound cajafx;
    //private Sprite picos2; Sin usar aun.
    private Dino1 dino;
    private BatchedPseudoSpriteParticleSystem ceniza;
    private int score;
    private Editor editor;
    private int highscore;
    private ArrayList<Sprite> sps;
    private Text text;
    private int movi;
    private CameraScene espau;
    private Sprite pausa;
    private Font fuente;


    @Override
    public void crearEscena() {

        fuente=admRecursos.fuente;
        text = new Text(ControlJuego.ANCHO_CAMARA/2, 34, fuente, "SCORE:       ", new TextOptions(HorizontalAlign.LEFT), admRecursos.vbom);
        this.setTouchAreaBindingOnActionDownEnabled(true);
        spriteFondo = new Sprite(0, 0, admRecursos.regionFondoJuego, admRecursos.vbom) {
            @Override
            protected void preDraw(GLState pGLState, Camera pCamera) {
                super.preDraw(pGLState, pCamera);
                pGLState.enableDither();
            }
        };

        espau=new CameraScene(ControlJuego.camara);

        pausa=new Sprite(ControlJuego.ANCHO_CAMARA/2,ControlJuego.ALTO_CAMARA/2 , AdministradorRecursos.getInstance().pausareg, AdministradorRecursos.getInstance().vbom);

        espau.attachChild(pausa);
        espau.setBackgroundEnabled(false);

        movi =30;
        Context conti =  ApplicationContextProvider.getContext();
        SharedPreferences prefs =  conti.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
        // Configuración de la imagen
        //SecureSharedPreferences prefs = ApplicationContextProvider.getContext().getSecureSharedPreferences("myPrefsKey",Context.MODE_PRIVATE);
        Editor editor = prefs.edit();
        spriteFondo.setPosition(ControlJuego.ANCHO_CAMARA / 2, ControlJuego.ALTO_CAMARA / 2);
        score = 1000;
        //editor.putInt("highScore3", 4);
        editor.commit();
        highscore = prefs.getInt("highScore1",0);
        ceniza= new BatchedPseudoSpriteParticleSystem(
                new RectangleParticleEmitter(ControlJuego.ANCHO_CAMARA / 2, ControlJuego.ALTO_CAMARA, ControlJuego.ANCHO_CAMARA, 1),
                2, 5, 100, admRecursos.regionCeniza,
                admRecursos.vbom);
        ceniza.setBlendFunction(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE);
        ceniza.addParticleInitializer(new VelocityParticleInitializer<Entity>(-3, 3, -20, -40));
        ceniza.addParticleInitializer(new AccelerationParticleInitializer<Entity>(-3, 3, -3, -5));
        ceniza.addParticleInitializer(new RotationParticleInitializer<Entity>(0.0f, 360.0f));
        ceniza.addParticleInitializer(new ExpireParticleInitializer<Entity>(20f));
        ceniza.addParticleInitializer(new ScaleParticleInitializer<Entity>(0.2f, 0.5f));
        ceniza.addParticleModifier(new AlphaParticleModifier<Entity>(12f, 10f, 1.0f, 0.0f));

        AnimatedSprite[] sprites = {sprite};
        dinoCounter = 1;
        sprite = new AnimatedSprite(ControlJuego.ANCHO_CAMARA / 2, (ControlJuego.ALTO_CAMARA / 2) + 130, AdministradorRecursos.getInstance().dino1regder, AdministradorRecursos.getInstance().vbom);
        sprite2 = new AnimatedSprite(1700, (ControlJuego.ALTO_CAMARA / 2) + 130, AdministradorRecursos.getInstance().dino2regder, AdministradorRecursos.getInstance().vbom);
        sprite3 = new AnimatedSprite(1700, (ControlJuego.ALTO_CAMARA / 2) + 130, AdministradorRecursos.getInstance().dino1regder, AdministradorRecursos.getInstance().vbom);
        sprite4 = new AnimatedSprite(1700, (ControlJuego.ALTO_CAMARA / 2) + 130, AdministradorRecursos.getInstance().dino3regder, AdministradorRecursos.getInstance().vbom);
        dino = new Dino1();
        dino.setSprites(sprites);
        sprite.setFlippedHorizontal(false);
        sprite2.setFlippedHorizontal(true);
        sprite3.setFlippedHorizontal(true);
        sprite4.setFlippedHorizontal(true);

        try
        {
            sangre = SoundFactory.createSoundFromAsset(admRecursos.actividadJuego.getSoundManager(), admRecursos.actividadJuego, "splat.ogg");
        }
        catch (IOException e)
        {
            Log.d("cargarRecursosMenu", "No se pudo cargar la música");
        }

        try
        {
            quemaofx = SoundFactory.createSoundFromAsset(admRecursos.actividadJuego.getSoundManager(), admRecursos.actividadJuego, "quemao.ogg");
        }
        catch (IOException e)
        {
            Log.d("cargarRecursosMenu", "No se pudo cargar la música");
        }

        try
        {
            victoria = SoundFactory.createSoundFromAsset(admRecursos.actividadJuego.getSoundManager(), admRecursos.actividadJuego, "meta.ogg");
        }
        catch (IOException e)
        {
            Log.d("cargarRecursosMenu", "No se pudo cargar la música");
        }

        try
        {
            cajafx = SoundFactory.createSoundFromAsset(admRecursos.actividadJuego.getSoundManager(), admRecursos.actividadJuego, "caja.ogg");
        }
        catch (IOException e)
        {
            Log.d("cargarRecursosMenu", "No se pudo cargar la música");
        }

        boton = new ButtonSprite(ControlJuego.ANCHO_CAMARA - 120, ControlJuego.ALTO_CAMARA - 120, admRecursos.regionBotoncito, admRecursos.vbom) {
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionUp()) {
                    if (!apretado) {
                        apretado = true;
                    } else {
                        apretado = false;
                    }
                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };
        boton2 = new ButtonSprite(ControlJuego.ANCHO_CAMARA - 120, -ControlJuego.ALTO_CAMARA/2 + 100, admRecursos.regionBotoncito, admRecursos.vbom) {
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionUp()) {
                    if (!apretado2) {
                        apretado2 = true;
                    } else {
                        apretado2 = false;
                    }
                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };
        botonArriba = new ButtonSprite(ControlJuego.ANCHO_CAMARA/2 + 350, ControlJuego.ALTO_CAMARA/2 + 200, admRecursos.regionBtnArriba, admRecursos.vbom) {
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionDown()) {
                    apretadoArriba=true;

                }
                if (pSceneTouchEvent.isActionUp()) {
                    apretadoArriba=false;
                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };
        botonAbajo = new ButtonSprite(ControlJuego.ANCHO_CAMARA/2 +350 , ControlJuego.ALTO_CAMARA/2 - 200, admRecursos.regionBtnAbajo, admRecursos.vbom) {
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionDown()) {
                    apretadoAbajo=true;

                }
                if (pSceneTouchEvent.isActionUp()) {
                    apretadoAbajo=false;
                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };

        botonPuente = new ButtonSprite((ControlJuego.ANCHO_CAMARA/2)-150, ControlJuego.ALTO_CAMARA - 40, admRecursos.regionBotonPuente, admRecursos.vbom) {
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionDown()) {
                    tablita2.setPosition(botonPuente.getX(),botonPuente.getY());
                }
                if (pSceneTouchEvent.isActionMove()) {
                    tablita2.setPosition(pSceneTouchEvent.getX(),pSceneTouchEvent.getY());
                }
                if (pSceneTouchEvent.isActionUp()) {
                    botonPuente.setY(-2000);
                    tablaSet = true;
                    botonPuente.detachSelf();
                    score = score-500;
                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };
        botonRampa = new ButtonSprite(ControlJuego.ANCHO_CAMARA/2, ControlJuego.ALTO_CAMARA-40, admRecursos.regionBtnRampa, admRecursos.vbom) {
            public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                if (pSceneTouchEvent.isActionDown()) {
                    rampa.setPosition(botonPuente.getX(),botonPuente.getY());
                }
                if (pSceneTouchEvent.isActionMove()) {
                    rampa.setPosition(pSceneTouchEvent.getX(),pSceneTouchEvent.getY());
                }
                if (pSceneTouchEvent.isActionUp()) {
                    botonRampa.setX(-2000);
                    botonRampa.detachSelf();
                    rampaSet = true;
                    score = score-500;
                }
                return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
            }
        };
        sps = new ArrayList();
        sps.add(sprite);
        apretado = false;
        apretado2 = false;
        picos = new Sprite(40, ControlJuego.ALTO_CAMARA - 10, AdministradorRecursos.getInstance().picoreg, admRecursos.vbom);
        caja = new Sprite((ControlJuego.ANCHO_CAMARA / 2) -50, 200, admRecursos.cajitareg, admRecursos.vbom);
        caja2 = new Sprite((ControlJuego.ANCHO_CAMARA / 2) - 80, 330, admRecursos.cajitareg, admRecursos.vbom);
        caja3 = new Sprite((ControlJuego.ANCHO_CAMARA / 2),-ControlJuego.ALTO_CAMARA/2+100, admRecursos.cajitareg, admRecursos.vbom);
        tablita2 = new Sprite(50, (ControlJuego.ALTO_CAMARA ) + 30, admRecursos.puente1reg, admRecursos.vbom);
        tablita4 = new Sprite(500, (-ControlJuego.ALTO_CAMARA/2) + 150, admRecursos.puente1reg, admRecursos.vbom);
        rampa = new Sprite(50, (ControlJuego.ALTO_CAMARA ) + 60, admRecursos.rampareg, admRecursos.vbom);
        picos.setFlippedVertical(true);
        picosan = new Sprite(3500, 3500, AdministradorRecursos.getInstance().sangreg, AdministradorRecursos.getInstance().vbom);
        picosan.setFlippedVertical(true);
        meta = new Sprite((ControlJuego.ANCHO_CAMARA) - 80, (-ControlJuego.ALTO_CAMARA / 2)+20, admRecursos.metareg, admRecursos.vbom);
        pared = new Sprite(111, 60, AdministradorRecursos.getInstance().paredsitareg, AdministradorRecursos.getInstance().vbom);
        pared2 = new Sprite(111, 30, AdministradorRecursos.getInstance().paredsitareg, AdministradorRecursos.getInstance().vbom);
        pared3 = new Sprite(111, 0, AdministradorRecursos.getInstance().paredsitareg, AdministradorRecursos.getInstance().vbom);
        tablita = new Sprite((ControlJuego.ANCHO_CAMARA / 2) - 80, (ControlJuego.ALTO_CAMARA / 2) + 50, AdministradorRecursos.getInstance().tablareg, AdministradorRecursos.getInstance().vbom);
        tablita3 = new Sprite(50, -ControlJuego.ALTO_CAMARA/2, AdministradorRecursos.getInstance().tablareg, AdministradorRecursos.getInstance().vbom);
        tablota = new Sprite((ControlJuego.ANCHO_CAMARA / 2) + 60, 80, AdministradorRecursos.getInstance().tablonreg, AdministradorRecursos.getInstance().vbom);
        tablota2 = new Sprite((ControlJuego.ANCHO_CAMARA / 2)+400,-ControlJuego.ALTO_CAMARA/2, AdministradorRecursos.getInstance().tablonreg, AdministradorRecursos.getInstance().vbom);
        tablamovil = new Sprite(50, 80, AdministradorRecursos.getInstance().tablamoreg, AdministradorRecursos.getInstance().vbom);
        tablamovil2 = new Sprite(250,-ControlJuego.ALTO_CAMARA/2, AdministradorRecursos.getInstance().tablamoreg, AdministradorRecursos.getInstance().vbom);
        muerte = new Sprite(240, -ControlJuego.ALTO_CAMARA/2-30, AdministradorRecursos.getInstance().muertereg, AdministradorRecursos.getInstance().vbom);
        muerte2 = new Sprite(270,  -ControlJuego.ALTO_CAMARA/2-30, AdministradorRecursos.getInstance().muertereg, AdministradorRecursos.getInstance().vbom);
        muerte3 = new Sprite(300, -ControlJuego.ALTO_CAMARA/2-30, AdministradorRecursos.getInstance().muertereg, AdministradorRecursos.getInstance().vbom);
        muerte4 = new Sprite(330, -ControlJuego.ALTO_CAMARA/2-30, AdministradorRecursos.getInstance().muertereg, AdministradorRecursos.getInstance().vbom);
        muerte5 = new Sprite(360, -ControlJuego.ALTO_CAMARA/2-30, AdministradorRecursos.getInstance().muertereg, AdministradorRecursos.getInstance().vbom);
        muerte6 = new Sprite(390, -ControlJuego.ALTO_CAMARA/2-30, AdministradorRecursos.getInstance().muertereg, AdministradorRecursos.getInstance().vbom);
        barra= new Sprite(ControlJuego.ANCHO_CAMARA/2, ControlJuego.ALTO_CAMARA-34, AdministradorRecursos.getInstance().barritareg1, AdministradorRecursos.getInstance().vbom);
        spriteFondo = new Sprite(0, 0, admRecursos.regionFondoJuego, admRecursos.vbom) {
            @Override
            protected void preDraw(GLState pGLState, Camera pCamera) {
                super.preDraw(pGLState, pCamera);
                pGLState.enableDither();
            }
        };
        // Configuración de la imagen
        spriteFondo.setPosition(ControlJuego.ANCHO_CAMARA / 2, ControlJuego.ALTO_CAMARA / 2);
        sprite.animate(100);
        sprite2.animate(100);
        sprite3.animate(100);
        sprite4.animate(100);
        this.attachChild(caja);
        this.attachChild(caja2);
        this.attachChild(caja3);
        this.attachChild(picos);
        this.attachChild(pared);
        this.attachChild(pared2);
        this.attachChild(pared3);
        this.attachChild(muerte);
        this.attachChild(muerte2);
        this.attachChild(muerte3);
        this.attachChild(muerte4);
        this.attachChild(muerte5);
        this.attachChild(muerte6);
        this.attachChild(tablita);
        this.attachChild(tablota);
        this.attachChild(tablota2);
        this.attachChild(tablamovil);
        this.attachChild(tablamovil2);
        this.attachChild(sprite);
        this.attachChild(picosan);
        this.attachChild(sprite2);
        this.attachChild(sprite3);
        this.attachChild(sprite4);
        this.attachChild(tablita2);
        this.attachChild(tablita3);
        this.attachChild(tablita4);
        this.attachChild(meta);
        this.registerTouchArea(boton);
        this.attachChild(boton);
        this.registerTouchArea(boton2);
        this.attachChild(boton2);
        this.registerTouchArea(botonArriba);
        this.attachChild(botonArriba);
        this.registerTouchArea(botonAbajo);
        this.attachChild(botonAbajo);
        this.registerTouchArea(botonPuente);
        this.attachChild(botonPuente);
        this.registerTouchArea(botonRampa);
        this.attachChild(botonRampa);
        this.attachChild(rampa);
        this.attachChild(barra);
        this.attachChild(ceniza);
        attachChild(text);

        // Crea el fondo de la pantalla
        SpriteBackground fondo = new SpriteBackground(1, 0.5f, 0, spriteFondo);
        setBackground(fondo);
        setBackgroundEnabled(true);

    }

    @Override
    public void onBackKeyPressed() {

        if(!pausado) {
            pausado=true;
            setChildScene(espau);
            espau.setBackgroundEnabled(true);
            ControlJuego.musica.pause();
            admRecursos.engine.stop();
        }
        else{
            pausado=false;
            clearChildScene();
            admRecursos.engine.start();
            if(ControlJuego.play){
                ControlJuego.musica.play();
            }
        }

    }

    @Override
    public TipoEscena getTipoEscena() {
        return TipoEscena.ESCENA_JUEGO;
    }

    @Override
    protected void onManagedUpdate(float pSecondsElapsed) {
        super.onManagedUpdate(pSecondsElapsed);
        text.setText("SCORE: "+score);
        if (AdministradorRecursos.camaraY() <= ControlJuego.ALTO_CAMARA / 2 && apretadoArriba) {
            AdministradorRecursos.subirCamara();
            botonArriba.setPosition(botonArriba.getX(), botonArriba.getY() + 10);
            botonAbajo.setPosition(botonAbajo.getX(), botonAbajo.getY() + 10);
            botonPuente.setPosition(botonPuente.getX(), botonPuente.getY() + 10);
            botonRampa.setPosition(botonRampa.getX(), botonRampa.getY() + 10);
            barra.setPosition(barra.getX(), barra.getY() + 10);
            text.setPosition(text.getX(), text.getY() + 10);


        }
        if (AdministradorRecursos.camaraY() >= -21 && apretadoAbajo) {
            AdministradorRecursos.bajarCamara();
            botonAbajo.setPosition(botonAbajo.getX(), botonAbajo.getY() - 10);
            botonArriba.setPosition(botonArriba.getX(), botonArriba.getY() - 10);
            botonPuente.setPosition(botonPuente.getX(), botonPuente.getY() - 10);
            botonRampa.setPosition(botonRampa.getX(), botonRampa.getY() - 10);
            barra.setPosition(barra.getX(), barra.getY() - 10);
            text.setPosition(text.getX(), text.getY() - 10);


        }

        if (sps.isEmpty() && !finalisar) {
            AdministradorRecursos.centrarCamara();
            admEscenas.crearEscenaGameOver();
            admEscenas.setEscena(TipoEscena.ESCENA_GAME_OVER);
            admEscenas.liberarEscenaJuego();
        }

        if (sps.isEmpty() && finalisar) {
            if (score > highscore) {
                Context conti = ApplicationContextProvider.getContext();
                SharedPreferences prefs = conti.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
                Editor editor = prefs.edit();
                editor.putInt("highScore1", score);
                editor.putInt("nuevoScore1", score);
                editor.putInt("ultimoNivel", 1);
                editor.commit();
            } else {
                Context conti = ApplicationContextProvider.getContext();
                SharedPreferences prefs = conti.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
                Editor editor = prefs.edit();
                editor.putInt("nuevoScore1", score);
                editor.putInt("ultimoNivel", 1);
                editor.commit();
            }
            AdministradorRecursos.centrarCamara();
            if (ControlJuego.play) ControlJuego.musica.play();
            admEscenas.crearEscenaPuntaje();
            admEscenas.setEscena(TipoEscena.ESCENA_PUNTAJE);
            admEscenas.liberarEscenaJuego();

        }




        if (apretado) {
            tablamovil.setY(tablamovil.getY() + 10);
            if (tablamovil.getY() >= ControlJuego.ALTO_CAMARA - 40) {
                tablamovil.setY(ControlJuego.ALTO_CAMARA - 40);
            }
        } else {
            tablamovil.setY(tablamovil.getY() - 10);
            if (tablamovil.getY() <= 80) {
                tablamovil.setY(80);
            }
        }

        if (apretado2) {
            tablamovil2.setY(tablamovil2.getY() + 10);
            if (tablamovil2.getY() >= -40) {
                tablamovil2.setY(-40);
            }
        } else {
            tablamovil2.setY(tablamovil2.getY() - 10);
            if (tablamovil2.getY() <= -ControlJuego.ALTO_CAMARA/2) {
                tablamovil2.setY( -ControlJuego.ALTO_CAMARA/2);
            }
        }

        if (sprite.collidesWith(muerte) || sprite.collidesWith(muerte2) || sprite.collidesWith(muerte3)|| sprite.collidesWith(muerte4)|| sprite.collidesWith(muerte5)|| sprite.collidesWith(muerte6)) {
            quemao = new Sprite(sprite.getX(), sprite.getY(), AdministradorRecursos.getInstance().quemaoreg, AdministradorRecursos.getInstance().vbom);
            quemaofx.play();
            this.attachChild(quemao);
            sprite.detachSelf();
            sprite.setPosition(3000,3000);
            sps.remove(sprite);
            dinoCounter --;

        }

        if (sprite2.collidesWith(muerte) || sprite2.collidesWith(muerte2) || sprite2.collidesWith(muerte3)|| sprite2.collidesWith(muerte4)|| sprite2.collidesWith(muerte5)|| sprite2.collidesWith(muerte6)) {
            quemao2 = new Sprite(sprite2.getX(), sprite2.getY(), AdministradorRecursos.getInstance().quemaoreg, AdministradorRecursos.getInstance().vbom);
            quemaofx.play();
            this.attachChild(quemao2);
            sprite2.detachSelf();
            sprite2.setPosition(3000,3000);
            sps.remove(sprite2);
            dinoCounter --;
        }
        if (sprite3.collidesWith(muerte) || sprite3.collidesWith(muerte2) || sprite3.collidesWith(muerte3)|| sprite3.collidesWith(muerte4)|| sprite3.collidesWith(muerte5)|| sprite3.collidesWith(muerte6)) {
            quemao2 = new Sprite(sprite3.getX(), sprite3.getY(), AdministradorRecursos.getInstance().quemaoreg, AdministradorRecursos.getInstance().vbom);
            quemaofx.play();
            this.attachChild(quemao2);
            sprite3.detachSelf();
            sprite3.setPosition(3000,3000);
            sps.remove(sprite3);
            dinoCounter --;
        }
        if (sprite4.collidesWith(muerte) || sprite4.collidesWith(muerte2) || sprite4.collidesWith(muerte3)|| sprite4.collidesWith(muerte4)|| sprite4.collidesWith(muerte5)|| sprite4.collidesWith(muerte6)) {
            quemao2 = new Sprite(sprite4.getX(), sprite4.getY(), AdministradorRecursos.getInstance().quemaoreg, AdministradorRecursos.getInstance().vbom);
            quemaofx.play();
            this.attachChild(quemao2);
            sprite4.detachSelf();
            sprite4.setPosition(3000,3000);
            sps.remove(sprite4);
            dinoCounter --;
        }

        if(sprite.collidesWith(picosan)){
            sangre.play();
            sprite.detachSelf();
            sprite.setPosition(3000,3000);
            sps.remove(sprite);
            dinoCounter--;
        }

        if (sprite2.collidesWith(picosan)) {
            sangre.play();
            sprite2.detachSelf();
            sprite2.setPosition(3000,3000);
            sps.remove(sprite2);
            dinoCounter --;
        }

        if (sprite3.collidesWith(picosan)) {
            sangre.play();
            sprite3.detachSelf();
            sprite3.setPosition(3000,3000);
            sps.remove(sprite3);
            dinoCounter --;
        }
        if (sprite4.collidesWith(picosan)) {
            sangre.play();
            sprite4.detachSelf();
            sprite4.setPosition(3000,3000);
            sps.remove(sprite4);
            dinoCounter --;
        }

        if (sprite.collidesWith(picos)) {
            sangre.play();
            picosan.setPosition(picos.getX(), picos.getY());
            picos.detachSelf();
            sprite.setPosition(-30, -30);
            sprite.detachSelf();
            sprite.setPosition(3000,3000);
            sps.remove(sprite);
        }

        if (sprite2.collidesWith(picos)) {
            sangre.play();
            picosan.setPosition(picos.getX(), picos.getY());
            picos.detachSelf();
            sprite2.setPosition(-30, -30);
            sprite2.detachSelf();
            sprite2.setPosition(3000,3000);
            sps.remove(sprite2);
        }
        if (sprite3.collidesWith(picos)) {
            sangre.play();
            picosan.setPosition(picos.getX(), picos.getY());
            picos.detachSelf();
            sprite3.setPosition(-30, -30);
            sprite3.detachSelf();
            sprite3.setPosition(3000,3000);
            sps.remove(sprite3);
        }
        if (sprite4.collidesWith(picos)) {
            sangre.play();
            picosan.setPosition(picos.getX(), picos.getY());
            picos.detachSelf();
            sprite4.setPosition(-30, -30);
            sprite4.detachSelf();
            sprite4.setPosition(3000,3000);
            sps.remove(sprite4);
        }

        if (sprite.collidesWith(meta)) {
            finalisar = true;
            victoria.play();
            score=score+1000;
            text.setText("SCORE: "+score);
            sprite.setPosition(-30, -30);
            sprite.detachSelf();
            sprite.setPosition(3000,3000);
            sps.remove(sprite);
            //AdministradorRecursos.centrarCamara();
            //admEscenas.crearEscenaPuntaje();
            //admEscenas.setEscena(TipoEscena.ESCENA_PUNTAJE);
            //admEscenas.liberarEscenaJuego();
        }

        if (sprite2.collidesWith(meta)) {
            finalisar = true;
            victoria.play();
            score=score+1000;
            text.setText("SCORE: "+score);
            sprite2.setPosition(-30, -30);
            sprite2.detachSelf();
            sprite2.setPosition(3000,3000);
            sps.remove(sprite2);
            //AdministradorRecursos.centrarCamara();
            // admEscenas.crearEscenaPuntaje();
            //admEscenas.setEscena(TipoEscena.ESCENA_PUNTAJE);
            //admEscenas.liberarEscenaJuego();
        }
        if (sprite3.collidesWith(meta)) {
            finalisar = true;
            victoria.play();
            score=score+1000;
            text.setText("SCORE: "+score);
            sprite3.setPosition(-30, -30);
            sprite3.detachSelf();
            sprite3.setPosition(3000,3000);
            sps.remove(sprite3);
            //AdministradorRecursos.centrarCamara();
            // admEscenas.crearEscenaPuntaje();
            //admEscenas.setEscena(TipoEscena.ESCENA_PUNTAJE);
            //admEscenas.liberarEscenaJuego();
        }
        if (sprite4.collidesWith(meta)) {
            finalisar = true;
            victoria.play();
            score=score+1000;
            text.setText("SCORE: "+score);
            sprite4.setPosition(-30, -30);
            sprite4.detachSelf();
            sprite4.setPosition(3000,3000);
            sps.remove(sprite4);
            //AdministradorRecursos.centrarCamara();
            // admEscenas.crearEscenaPuntaje();
            //admEscenas.setEscena(TipoEscena.ESCENA_PUNTAJE);
            //admEscenas.liberarEscenaJuego();
        }


        if (sprite.collidesWith(caja)) {
            cajafx.play();
            sprite2.setPosition(caja.getX(), caja.getY());
            caja.setPosition(1000, 1000);
            caja.detachSelf();
            dinoCounter++;
            sps.add(sprite2);
        }
        if (sprite2.collidesWith(caja)) {
            cajafx.play();
            sprite2.setPosition(caja.getX(), caja.getY());
            caja.setPosition(1000, 1000);
            caja.detachSelf();
            sps.add(sprite2);
        }
        if (sprite3.collidesWith(caja)) {
            cajafx.play();
            sprite2.setPosition(caja.getX(), caja.getY());
            caja.setPosition(1000, 1000);
            caja.detachSelf();
            dinoCounter++;
            sps.add(sprite2);
        }
        if (sprite4.collidesWith(caja)) {
            cajafx.play();
            sprite2.setPosition(caja.getX(), caja.getY());
            caja.setPosition(1000, 1000);
            caja.detachSelf();
            dinoCounter++;
            sps.add(sprite2);
        }

        //caja 2
        if (sprite.collidesWith(caja2)) {
            cajafx.play();
            sprite3.setPosition(caja2.getX(),caja2.getY());
            caja2.setPosition(1000, 1000);
            caja2.detachSelf();
            dinoCounter++;
            sps.add(sprite3);
        }
        if (sprite2.collidesWith(caja2)) {
            cajafx.play();
            sprite3.setPosition(caja2.getX(), caja2.getY());
            caja2.setPosition(1000, 1000);
            caja2.detachSelf();
            dinoCounter++;
            sps.add(sprite3);
        }
        if (sprite3.collidesWith(caja2)) {
            cajafx.play();
            sprite3.setPosition(caja2.getX(),caja2.getY());
            caja2.setPosition(1000, 1000);
            caja2.detachSelf();
            dinoCounter++;
            sps.add(sprite3);
        }
        if (sprite4.collidesWith(caja2)) {
            cajafx.play();
            sprite3.setPosition(caja2.getX(),caja2.getY());
            caja2.setPosition(1000, 1000);
            caja2.detachSelf();
            dinoCounter++;
            sps.add(sprite3);
        }
// caja 3
        if (sprite.collidesWith(caja3)) {
            cajafx.play();
            sprite4.setPosition(caja3.getX(),caja3.getY());
            caja3.setPosition(1000, 1000);
            caja3.detachSelf();
            dinoCounter++;
            sps.add(sprite4);
        }
        if (sprite2.collidesWith(caja3)) {
            cajafx.play();
            sprite4.setPosition(caja3.getX(), caja3.getY());
            caja3.setPosition(1000, 1000);
            caja3.detachSelf();
            dinoCounter++;
            sps.add(sprite4);
        }
        if (sprite3.collidesWith(caja3)) {
            cajafx.play();
            sprite4.setPosition(caja3.getX(),caja3.getY());
            caja3.setPosition(1000, 1000);
            caja3.detachSelf();
            dinoCounter++;
            sps.add(sprite4);
        }
        if (sprite4.collidesWith(caja3)) {
            cajafx.play();
            sprite4.setPosition(caja3.getX(),caja3.getY());
            caja3.setPosition(1000, 1000);
            caja3.detachSelf();
            dinoCounter++;
            sps.add(sprite4);
        }
        if (!sprite2.isFlippedHorizontal()) {
            if (!sprite2.collidesWith(tablita4)&&!sprite2.collidesWith(tablita) && !sprite2.collidesWith(tablota)&& !sprite2.collidesWith(tablota2) && !sprite2.collidesWith(tablamovil)&& (!sprite2.collidesWith(tablita2)|| !tablaSet) && (!sprite2.collidesWith(rampa)|| !rampaSet)&&!sprite2.collidesWith(tablita3)&& !sprite2.collidesWith(tablamovil2)) {
                sprite2.setY(sprite2.getY() - 10);
            } else {
                if (sprite2.collidesWith(tablamovil) && apretado) {
                    sprite2.setY(tablamovil.getY());
                }
                if (sprite2.collidesWith(tablamovil2) && apretado2) {
                    sprite2.setY(tablamovil2.getY());
                }
                //inicia nueva cosa fea
                if(!sprite.collidesWith(rampa)&& !rampaSet) {
                if (sprite2.collidesWith(tablita4) && sprite2.getY() > tablita4.getY()) {
                    sprite2.setY(tablita4.getY() + movi);
                }
                if (sprite2.collidesWith(tablita4) && sprite2.getY() <= tablita4.getY()) {
                    sprite2.setX(sprite2.getX() - 30);
                    sprite2.setFlippedHorizontal(true);
                }
                if (sprite2.collidesWith(tablita3) && sprite2.getY() > tablita3.getY()) {
                    sprite2.setY(tablita3.getY() + movi);
                }
                if (sprite2.collidesWith(tablita3) && sprite2.getY() <= tablita3.getY()) {
                    sprite2.setFlippedHorizontal(true);
                    sprite2.setX(sprite2.getX() - 30);
                }
                if (sprite2.collidesWith(tablita2) && sprite2.getY() > tablita2.getY() && tablaSet) {
                    sprite2.setY(tablita2.getY() + movi);
                }
                if (sprite2.collidesWith(tablita2) && sprite2.getY() <= tablita2.getY() && tablaSet) {
                    sprite2.setFlippedHorizontal(true);
                    sprite2.setX(sprite2.getX() - 30);
                }
                if (sprite2.collidesWith(tablita) && sprite2.getY() > tablita.getY()) {
                    sprite2.setY(tablita.getY() + movi);

                }
                if (sprite2.collidesWith(tablita) && sprite2.getY() <= tablita.getY()) {
                    sprite2.setFlippedHorizontal(true);
                    sprite2.setX(sprite2.getX() - 30);
                }
                if (sprite2.collidesWith(tablota) && sprite2.getY() > tablota.getY()) {
                    sprite2.setY(tablota.getY() + movi);
                }
                if (sprite2.collidesWith(tablota) && sprite2.getY() <= tablota.getY()) {
                    sprite2.setFlippedHorizontal(true);
                    sprite2.setX(sprite2.getX() - 30);
                }
                if (sprite2.collidesWith(tablota2) && sprite2.getY() > tablota2.getY()) {
                    sprite2.setY(tablota2.getY() + movi);
                }
                if (sprite2.collidesWith(tablota2) && sprite2.getY() <= tablota2.getY()) {
                    sprite2.setFlippedHorizontal(true);
                    sprite2.setX(sprite2.getX() - 30);
                }
            }
                //termina costa fea
                if(sprite2.collidesWith(rampa)&& rampaSet){
                    sprite2.setFlippedHorizontal(true);
                }
                if (sprite2.getX() < ControlJuego.ANCHO_CAMARA - 10) {
                    sprite2.setX(sprite2.getX() + 5);
                } else {
                    sprite2.setX(ControlJuego.ANCHO_CAMARA - 10);
                    sprite2.setFlippedHorizontal(true);
                }
            }
        } else {
            if (!sprite2.collidesWith(tablita4)&&!sprite2.collidesWith(tablita) && !sprite2.collidesWith(tablota)&& !sprite2.collidesWith(tablota2) && !sprite2.collidesWith(tablamovil)&& (!sprite2.collidesWith(tablita2)||!tablaSet) && (!sprite2.collidesWith(rampa)|| !rampaSet)&&!sprite2.collidesWith(tablita3)&& !sprite2.collidesWith(tablamovil2)) {
                sprite2.setY(sprite2.getY() - 10);
            } else {
                if (sprite2.collidesWith(tablamovil) && apretado) {
                    sprite2.setY(tablamovil.getY());
                }
                if (sprite2.collidesWith(tablamovil2) && apretado2) {
                    sprite2.setY(tablamovil2.getY());
                }
                //inicia nueva cosa fea
                if(!sprite2.collidesWith(rampa)&& !rampaSet) {
                if (sprite2.collidesWith(tablita4) && sprite2.getY() > tablita4.getY()) {
                    sprite2.setY(tablita4.getY() + movi);

                }
                if (sprite2.collidesWith(tablita4) && sprite2.getY() <= tablita4.getY()) {
                    sprite2.setFlippedHorizontal(false);
                    sprite2.setX(sprite2.getX() + 30);
                }
                if (sprite2.collidesWith(tablita3) && sprite2.getY() > tablita3.getY()) {
                    sprite2.setY(tablita3.getY() + movi);
                }
                if (sprite2.collidesWith(tablita3) && sprite2.getY() <= tablita3.getY()) {
                    sprite2.setFlippedHorizontal(false);
                    sprite2.setX(sprite2.getX() + 30);
                }
                if (sprite2.collidesWith(tablita2) && sprite2.getY() > tablita2.getY() && tablaSet) {
                    sprite2.setY(tablita2.getY() + movi);
                }
                if (sprite2.collidesWith(tablita2) && sprite2.getY() <= tablita2.getY() && tablaSet) {
                    sprite2.setFlippedHorizontal(false);
                    sprite2.setX(sprite2.getX() + 30);
                }
                if (sprite2.collidesWith(tablita) && sprite2.getY() > tablita.getY()) {
                    sprite2.setY(tablita.getY() + movi);
                }
                if (sprite2.collidesWith(tablita) && sprite2.getY() <= tablita.getY()) {
                    sprite2.setFlippedHorizontal(false);
                    sprite2.setX(sprite2.getX() + 30);
                }
                if (sprite2.collidesWith(tablota) && sprite2.getY() > tablota.getY()) {
                    sprite2.setY(tablota.getY() + movi);
                }
                if (sprite2.collidesWith(tablota) && sprite2.getY() <= tablota.getY()) {
                    sprite2.setFlippedHorizontal(false);
                    sprite2.setX(sprite2.getX() + 30);
                }
                if (sprite2.collidesWith(tablota2) && sprite2.getY() > tablota2.getY()) {
                    sprite2.setY(tablota2.getY() + movi);
                }
                if (sprite2.collidesWith(tablota2) && sprite2.getY() <= tablota2.getY()) {
                    sprite2.setFlippedHorizontal(false);
                    sprite2.setX(sprite2.getX() + 30);
                }
            }
                //termina costa fea
                if(sprite2.collidesWith(rampa) && rampaSet){
                    sprite2.setY(sprite2.getY()+1);
                    // sprite2.setX(sprite2.getX()-2);
                }
                if (sprite2.getX() > 10) {
                    sprite2.setX(sprite2.getX() - 5);
                } else {
                    sprite2.setX(10);
                    sprite2.setFlippedHorizontal(false);
                }
            }
        }
        if (!sprite3.isFlippedHorizontal()) {
            if (!sprite3.collidesWith(tablita4)&&!sprite3.collidesWith(tablita) && !sprite3.collidesWith(tablota)&& !sprite3.collidesWith(tablota2) && !sprite3.collidesWith(tablamovil)&& (!sprite3.collidesWith(tablita2)|| !tablaSet) && (!sprite3.collidesWith(rampa)|| !rampaSet)&&!sprite3.collidesWith(tablita3)&& !sprite3.collidesWith(tablamovil2)) {
                sprite3.setY(sprite3.getY() - 10);
            } else {
                if (sprite3.collidesWith(tablamovil) && apretado) {
                    sprite3.setY(tablamovil.getY());
                }
                if (sprite3.collidesWith(tablamovil2) && apretado2) {
                    sprite3.setY(tablamovil2.getY());
                }
                //inicia nueva cosa fea
                if(!sprite.collidesWith(rampa)&& !rampaSet) {
                if (sprite3.collidesWith(tablita4) && sprite3.getY() > tablita4.getY()) {
                    sprite3.setY(tablita4.getY() + movi);
                }
                if (sprite3.collidesWith(tablita4) && sprite3.getY() <= tablita4.getY()) {
                    sprite3.setFlippedHorizontal(true);
                    sprite3.setX(sprite3.getX() - 30);
                }
                if (sprite3.collidesWith(tablita3) && sprite3.getY() > tablita3.getY()) {
                    sprite3.setY(tablita3.getY() + movi);
                }
                if (sprite3.collidesWith(tablita3) && sprite3.getY() <= tablita3.getY()) {
                    sprite3.setFlippedHorizontal(true);
                    sprite3.setX(sprite3.getX() - 30);
                }
                if (sprite3.collidesWith(tablita2) && sprite3.getY() > tablita2.getY() && tablaSet) {
                    sprite3.setY(tablita2.getY() + movi);
                }
                if (sprite3.collidesWith(tablita2) && sprite3.getY() <= tablita2.getY() && tablaSet) {
                    sprite3.setFlippedHorizontal(true);
                    sprite3.setX(sprite3.getX() - 30);
                }
                if (sprite3.collidesWith(tablita) && sprite3.getY() > tablita.getY()) {
                    sprite3.setY(tablita.getY() + movi);
                }
                if (sprite3.collidesWith(tablita) && sprite3.getY() <= tablita.getY()) {
                    sprite3.setFlippedHorizontal(true);
                    sprite3.setX(sprite3.getX() - 30);
                }
                if (sprite3.collidesWith(tablota) && sprite3.getY() > tablota.getY()) {
                    sprite3.setY(tablota.getY() + movi);
                    sprite3.setX(sprite3.getX() - 30);
                }
                if (sprite3.collidesWith(tablota) && sprite3.getY() <= tablota.getY()) {
                    sprite3.setFlippedHorizontal(true);
                }
                if (sprite3.collidesWith(tablota2) && sprite3.getY() > tablota2.getY()) {
                    sprite3.setY(tablota2.getY() + movi);
                }
                if (sprite3.collidesWith(tablota2) && sprite3.getY() <= tablota2.getY()) {
                    sprite3.setFlippedHorizontal(true);
                    sprite3.setX(sprite3.getX() - 30);
                }
            }
                //termina costa fea
                if(sprite3.collidesWith(rampa)&& rampaSet){
                    sprite3.setFlippedHorizontal(true);
                }
                if (sprite3.getX() < ControlJuego.ANCHO_CAMARA - 10) {
                    sprite3.setX(sprite3.getX() + 2);
                } else {
                    sprite3.setX(ControlJuego.ANCHO_CAMARA - 10);
                    sprite3.setFlippedHorizontal(true);
                }
            }
        } else {

            if (!sprite3.collidesWith(tablita4)&&!sprite3.collidesWith(tablita) && !sprite3.collidesWith(tablota)&& !sprite3.collidesWith(tablota2) && !sprite3.collidesWith(tablamovil)&& (!sprite3.collidesWith(tablita2)|| !tablaSet) && (!sprite3.collidesWith(rampa)|| !rampaSet)&&!sprite3.collidesWith(tablita3)&& !sprite3.collidesWith(tablamovil2)) {
                sprite3.setY(sprite3.getY() - 10);
            } else {
                if (sprite3.collidesWith(tablamovil) && apretado) {
                    sprite3.setY(tablamovil.getY());
                }
                if (sprite3.collidesWith(tablamovil2) && apretado2) {
                    sprite3.setY(tablamovil2.getY());
                }
                //inicia nueva cosa fea
                if(!sprite.collidesWith(rampa)&& !rampaSet) {
                if (sprite3.collidesWith(tablita4) && sprite3.getY() > tablita4.getY()) {
                    sprite3.setY(tablita4.getY() + movi);
                }
                if (sprite3.collidesWith(tablita4) && sprite3.getY() <= tablita4.getY()) {
                    sprite3.setFlippedHorizontal(false);
                    sprite3.setX(sprite3.getX() + 30);
                }
                if (sprite3.collidesWith(tablita3) && sprite3.getY() > tablita3.getY()) {
                    sprite3.setY(tablita3.getY() + movi);
                }
                if (sprite3.collidesWith(tablita3) && sprite3.getY() <= tablita3.getY()) {
                    sprite3.setFlippedHorizontal(false);
                    sprite3.setX(sprite3.getX() + 30);
                }
                if (sprite3.collidesWith(tablita2) && sprite3.getY() > tablita2.getY() && tablaSet) {
                    sprite3.setY(tablita2.getY() + movi);
                }
                if (sprite3.collidesWith(tablita2) && sprite3.getY() <= tablita2.getY() && tablaSet) {
                    sprite3.setFlippedHorizontal(false);
                    sprite3.setX(sprite3.getX() + 30);
                }
                if (sprite3.collidesWith(tablita) && sprite3.getY() > tablita.getY()) {
                    sprite3.setY(tablita.getY() + movi);
                }
                if (sprite3.collidesWith(tablita) && sprite3.getY() <= tablita.getY()) {
                    sprite3.setFlippedHorizontal(false);
                    sprite3.setX(sprite3.getX() + 30);
                }
                if (sprite3.collidesWith(tablota) && sprite3.getY() > tablota.getY()) {
                    sprite3.setY(tablota.getY() + movi);
                }
                if (sprite3.collidesWith(tablota) && sprite3.getY() <= tablota.getY()) {
                    sprite3.setFlippedHorizontal(false);
                    sprite3.setX(sprite3.getX() + 30);
                }
                if (sprite3.collidesWith(tablota2) && sprite3.getY() > tablota2.getY()) {
                    sprite3.setY(tablota2.getY() + movi);
                }
                if (sprite3.collidesWith(tablota2) && sprite3.getY() <= tablota2.getY()) {
                    sprite3.setFlippedHorizontal(false);
                    sprite3.setX(sprite3.getX() + 30);
                }
            }
                //termina costa fea
                if(sprite3.collidesWith(rampa) && rampaSet){
                    sprite3.setY(sprite3.getY()+1);
                    // sprite2.setX(sprite2.getX()-2);
                }
                if (sprite3.getX() > 10) {
                    sprite3.setX(sprite3.getX() - 2);
                } else {
                    sprite3.setX(10);
                    sprite3.setFlippedHorizontal(false);
                }
            }
        }

        if (!sprite4.isFlippedHorizontal()) {
            if (!sprite4.collidesWith(tablita4)&&!sprite4.collidesWith(tablita) && !sprite4.collidesWith(tablota)&& !sprite4.collidesWith(tablota2) && !sprite4.collidesWith(tablamovil)&& (!sprite4.collidesWith(tablita2)|| !tablaSet) && (!sprite4.collidesWith(rampa)|| !rampaSet)&&!sprite4.collidesWith(tablita3)&& !sprite4.collidesWith(tablamovil2)) {
                sprite4.setY(sprite4.getY() - 10);
            } else {
                if (sprite4.collidesWith(tablamovil) && apretado) {
                    sprite4.setY(tablamovil.getY()+30);
                }
                if (sprite4.collidesWith(tablamovil2) && apretado2) {
                    sprite4.setY(tablamovil2.getY());
                }
                //inicia nueva cosa fea
                if(!sprite4.collidesWith(rampa)&& !rampaSet) {
                if (sprite4.collidesWith(tablita4) && sprite4.getY() > tablita4.getY()) {
                    sprite4.setY(tablita4.getY() + movi);
                }
                if (sprite4.collidesWith(tablita4) && sprite4.getY() <= tablita4.getY()) {
                    sprite4.setFlippedHorizontal(true);
                    sprite4.setX(sprite4.getX() - 30);
                }
                if (sprite4.collidesWith(tablita3) && sprite4.getY() > tablita3.getY()) {
                    sprite4.setY(tablita3.getY() + movi);
                }
                if (sprite4.collidesWith(tablita3) && sprite4.getY() <= tablita3.getY()) {
                    sprite4.setFlippedHorizontal(true);
                    sprite4.setX(sprite4.getX() - 30);
                }
                if (sprite4.collidesWith(tablita2) && sprite4.getY() > tablita2.getY()) {
                    sprite4.setY(tablita2.getY() + movi);
                }
                if (sprite4.collidesWith(tablita2) && sprite4.getY() <= tablita2.getY() && tablaSet) {
                    sprite4.setFlippedHorizontal(true);
                    sprite4.setX(sprite4.getX() - 30);
                }
                if (sprite4.collidesWith(tablita) && sprite4.getY() > tablita.getY() && tablaSet) {
                    sprite4.setY(tablita.getY() + movi);
                }
                if (sprite4.collidesWith(tablita) && sprite4.getY() <= tablita.getY()) {
                    sprite4.setFlippedHorizontal(true);
                    sprite4.setX(sprite4.getX() - 30);
                }
                if (sprite4.collidesWith(tablota) && sprite4.getY() > tablota.getY()) {
                    sprite4.setY(tablota.getY() + movi);
                }
                if (sprite4.collidesWith(tablota) && sprite4.getY() <= tablota.getY()) {
                    sprite4.setFlippedHorizontal(true);
                    sprite4.setX(sprite4.getX() - 30);
                }
                if (sprite4.collidesWith(tablota2) && sprite4.getY() > tablota2.getY()) {
                    sprite4.setY(tablota2.getY() + movi);
                }
                if (sprite4.collidesWith(tablota2) && sprite4.getY() <= tablota2.getY()) {
                    sprite4.setFlippedHorizontal(true);
                    sprite4.setX(sprite4.getX() - 30);
                }
            }
                //termina costa fea
                if (sprite4.collidesWith(tablamovil2) && apretado2) {
                    sprite4.setY(tablamovil2.getY());
                }
                if(sprite4.collidesWith(rampa)&& rampaSet){
                    sprite4.setFlippedHorizontal(true);
                }
                if (sprite4.getX() < ControlJuego.ANCHO_CAMARA - 10) {
                    sprite4.setX(sprite4.getX() +3);
                } else {
                    sprite4.setX(ControlJuego.ANCHO_CAMARA - 10);
                    sprite4.setFlippedHorizontal(true);
                }
            }
        } else {
            if (!sprite4.collidesWith(tablita4)&&!sprite4.collidesWith(tablita) && !sprite4.collidesWith(tablota)&& !sprite4.collidesWith(tablota2) && !sprite4.collidesWith(tablamovil)&& (!sprite4.collidesWith(tablita2)|| !tablaSet) && (!sprite4.collidesWith(rampa)|| !rampaSet)&&!sprite4.collidesWith(tablita3)&& !sprite4.collidesWith(tablamovil2)) {
                sprite4.setY(sprite4.getY() - 10);
            } else {
                if (sprite4.collidesWith(tablamovil) && apretado) {
                    sprite4.setY(tablamovil.getY());
                }
                if (sprite4.collidesWith(tablamovil2) && apretado2) {
                    sprite4.setY(tablamovil2.getY());
                }
                //inicia nueva cosa fea
                if(!sprite4.collidesWith(rampa)&& !rampaSet) {
                if (sprite4.collidesWith(tablita4) && sprite4.getY() > tablita4.getY()) {
                    sprite4.setY(tablita4.getY() + movi);
                }
                if (sprite4.collidesWith(tablita4) && sprite4.getY() <= tablita4.getY()) {
                    sprite4.setFlippedHorizontal(false);
                    sprite4.setX(sprite4.getX() + 30);
                }
                if (sprite4.collidesWith(tablita3) && sprite4.getY() > tablita3.getY()) {
                    sprite4.setY(tablita3.getY() + movi);

                }
                if (sprite4.collidesWith(tablita3) && sprite4.getY() <= tablita3.getY()) {
                    sprite4.setFlippedHorizontal(false);
                    sprite4.setX(sprite4.getX() + 30);
                }
                if (sprite4.collidesWith(tablita2) && sprite4.getY() > tablita2.getY() && tablaSet) {
                    sprite4.setY(tablita2.getY() + movi);

                }
                if (sprite4.collidesWith(tablita2) && sprite4.getY() <= tablita2.getY()) {
                    sprite4.setFlippedHorizontal(false);
                    sprite4.setX(sprite4.getX() + 30);
                }
                if (sprite4.collidesWith(tablita) && sprite4.getY() > tablita.getY()) {
                    sprite4.setY(tablita.getY() + movi);
                }
                if (sprite4.collidesWith(tablita) && sprite4.getY() <= tablita.getY()) {
                    sprite4.setFlippedHorizontal(false);
                    sprite4.setX(sprite4.getX() + 30);
                }
                if (sprite4.collidesWith(tablota) && sprite4.getY() > tablota.getY()) {
                    sprite4.setY(tablota.getY() + movi);
                }
                if (sprite4.collidesWith(tablota) && sprite4.getY() <= tablota.getY()) {
                    sprite4.setFlippedHorizontal(false);
                    sprite4.setX(sprite4.getX() + 30);
                }
                if (sprite4.collidesWith(tablota2) && sprite4.getY() > tablota2.getY()) {
                    sprite4.setY(tablota2.getY() + movi);
                }
                if (sprite4.collidesWith(tablota2) && sprite4.getY() <= tablota2.getY()) {
                    sprite4.setFlippedHorizontal(false);
                    sprite4.setX(sprite4.getX() + 30);
                }
            }
                //termina costa fea
                if (sprite4.collidesWith(tablamovil2) && apretado2) {
                    sprite4.setY(tablamovil2.getY());
                }
                if(sprite4.collidesWith(rampa) && rampaSet){
                    sprite4.setY(sprite4.getY()+1);
                    // sprite2.setX(sprite2.getX()-2);
                }
                if (sprite4.getX() > 10) {
                    sprite4.setX(sprite4.getX() - 3);
                } else {
                    sprite4.setX(10);
                    sprite4.setFlippedHorizontal(false);
                }
            }
        }
        if (!sprite.isFlippedHorizontal()) {
            if (!sprite.collidesWith(tablita4)&&!sprite.collidesWith(tablita) && !sprite.collidesWith(tablota) && !sprite.collidesWith(tablota2) && !sprite.collidesWith(tablamovil)&& (!sprite.collidesWith(tablita2)|| !tablaSet) && (!sprite.collidesWith(rampa)|| !rampaSet)&&!sprite.collidesWith(tablita3)&& !sprite.collidesWith(tablamovil2)) {
                sprite.setY(sprite.getY() - 10);
            } else {
                if (sprite.collidesWith(tablamovil) && apretado) {
                    sprite.setY(tablamovil.getY());
                }
                //inicia nueva cosa fea
                if(!sprite.collidesWith(rampa)&& !rampaSet) {
                if (sprite.collidesWith(tablita4) && sprite.getY() > tablita4.getY()) {
                    sprite.setY(tablita4.getY() + movi);
                }
                if (sprite.collidesWith(tablita4) && sprite.getY() <= tablita4.getY()) {
                    sprite.setFlippedHorizontal(true);
                    sprite.setX(sprite.getX() - 30);
                }
                if (sprite.collidesWith(tablita3) && sprite.getY() > tablita3.getY()) {
                    sprite.setY(tablita3.getY() + movi);
                }
                if (sprite.collidesWith(tablita3) && sprite.getY() <= tablita3.getY()) {
                    sprite.setFlippedHorizontal(true);
                    sprite.setX(sprite.getX() - 30);
                }
                if (sprite.collidesWith(tablita2) && sprite.getY() > tablita2.getY() && tablaSet) {
                    sprite.setY(tablita2.getY() + movi);
                }
                if (sprite.collidesWith(tablita2) && sprite.getY() <= tablita2.getY() && tablaSet) {
                    sprite.setFlippedHorizontal(true);
                    sprite.setX(sprite.getX() - 30);
                }
                if (sprite.collidesWith(tablita) && sprite.getY() > tablita.getY()) {
                    sprite.setY(tablita.getY() + movi);
                }
                if (sprite.collidesWith(tablita) && sprite.getY() <= tablita.getY()) {
                    sprite.setFlippedHorizontal(true);
                    sprite.setX(sprite.getX() - 30);
                }
                if (sprite.collidesWith(tablota) && sprite.getY() > tablota.getY()) {
                    sprite.setY(tablota.getY() + movi);
                }
                if (sprite.collidesWith(tablota) && sprite.getY() <= tablota.getY()) {
                    sprite.setFlippedHorizontal(true);
                    sprite.setX(sprite.getX() - 30);
                }
                if (sprite.collidesWith(tablota2) && sprite.getY() > tablota2.getY()) {
                    sprite.setY(tablota2.getY() + movi);
                }
                if (sprite.collidesWith(tablota2) && sprite.getY() <= tablota2.getY()) {
                    sprite.setFlippedHorizontal(true);
                    sprite.setX(sprite.getX() - 30);
                }
            }
                //termina costa fea
                if (sprite.collidesWith(tablamovil2) && apretado2) {
                    sprite.setY(tablamovil2.getY());
                }
                if(sprite.collidesWith(rampa)&& rampaSet){
                    sprite.setFlippedHorizontal(true);
                }
                if (sprite.getX() < ControlJuego.ANCHO_CAMARA - 10) {
                    sprite.setX(sprite.getX() + 2);
                } else {
                    sprite.setX(ControlJuego.ANCHO_CAMARA - 10);
                    sprite.setFlippedHorizontal(true);
                }
            }
        } else {
            if (!sprite.collidesWith(tablita4)&&!sprite.collidesWith(tablita) && !sprite.collidesWith(tablota)&& !sprite.collidesWith(tablota2) && !sprite.collidesWith(tablamovil)&& (!sprite.collidesWith(tablita2)|| !tablaSet) && (!sprite.collidesWith(rampa)|| !rampaSet)&&!sprite.collidesWith(tablita3)&& !sprite.collidesWith(tablamovil2)) {
                sprite.setY(sprite.getY() - 10);
            } else {
                if (sprite.collidesWith(tablamovil) && apretado) {
                    sprite.setY(tablamovil.getY());
                }
                //inicia nueva cosa fea
                if(!sprite.collidesWith(rampa)&& !rampaSet) {
                    if (sprite.collidesWith(tablita4) && sprite.getY() > tablita4.getY()) {
                        sprite.setY(tablita4.getY() + movi);
                    }
                    if (sprite.collidesWith(tablita4) && sprite.getY() <= tablita4.getY()) {
                        sprite.setFlippedHorizontal(false);
                        sprite.setX(sprite.getX() + 50);
                    }
                    if (sprite.collidesWith(tablita3) && sprite.getY() > tablita3.getY()) {
                        sprite.setY(tablita3.getY() + movi);
                    }
                    if (sprite.collidesWith(tablita3) && sprite.getY() <= tablita3.getY()) {
                        sprite.setFlippedHorizontal(false);
                        sprite.setX(sprite.getX() + 50);
                    }
                    if (sprite.collidesWith(tablita2) && sprite.getY() > tablita2.getY() && tablaSet) {
                        sprite.setY(tablita2.getY() + movi);
                    }
                    if (sprite.collidesWith(tablita2) && sprite.getY() <= tablita2.getY() && tablaSet) {
                        sprite.setFlippedHorizontal(false);
                        sprite.setX(sprite.getX() + 50);
                    }
                    if (sprite.collidesWith(tablita) && sprite.getY() > tablita.getY()) {
                        sprite.setY(tablita.getY() + movi);
                    }
                    if (sprite.collidesWith(tablita) && sprite.getY() <= tablita.getY()) {
                        sprite.setFlippedHorizontal(false);
                        sprite.setX(sprite.getX() + 50);
                    }
                    if (sprite.collidesWith(tablota) && sprite.getY() > tablota.getY()) {
                        sprite.setY(tablota.getY() + movi);
                    }
                    if (sprite.collidesWith(tablota) && sprite.getY() <= tablota.getY()) {
                        sprite.setFlippedHorizontal(false);
                        sprite.setX(sprite.getX() + 50);
                    }
                    if (sprite.collidesWith(tablota2) && sprite.getY() > tablota2.getY()) {
                        sprite.setY(tablota2.getY() + movi);
                    }
                    if (sprite.collidesWith(tablota2) && sprite.getY() <= tablota2.getY()) {
                        sprite.setFlippedHorizontal(false);
                        sprite.setX(sprite.getX() + 50);
                    }
                }
                //termina costa fea
                if (sprite.collidesWith(tablamovil2) && apretado2) {
                    sprite.setY(tablamovil2.getY());
                }
                if(sprite.collidesWith(rampa) && rampaSet){
                    sprite.setY(sprite.getY()+1);
                    // sprite2.setX(sprite2.getX()-2);
                }
                if (sprite.getX() > 10) {
                    sprite.setX(sprite.getX() - 2);
                } else {
                    sprite.setX(10);
                    sprite.setFlippedHorizontal(false);
                }
            }
        }
    }


    @Override
    public void liberarEscena() {
        // Liberar cada recurso usado en esta escena
        spriteFondo.detachSelf();   // Se desconecta de la escena
        spriteFondo.dispose();      // Libera la memoria

        this.detachSelf();      // La escena se deconecta del engine
        this.dispose();         // Libera la memoria
    }
}

